package controle;

import java.util.ArrayList;
import java.util.List;

import DAO.VendaDAO;
import DAO.DAOFactory;
import DAO.VendaIngressoDAO;
import DAO.VendaIngressoDAOImp;

import modelo.Venda;
import modelo.Venda;
/**
 * 
 * @author douglas_joaquim
 *
 *Controle venda implementa venda
 */
public class ControleVenda implements Controle<Venda>{
/**
 * Salva ou altera vendas
 */
	@Override
	public void salvar(Venda e) throws Exception {
		if(e.getFuncionario().equals("")){
			throw new Exception ("Funcionario e obrigatorio");
		}
		if(e.getCliente().equals("")){
			throw new Exception ("Cliente e obrigatorio");
		}
		if(e.getData().equals("")){
			throw new Exception("Data e obrigatorio");
		}
		if(e.getPreco() == 0){
			throw new Exception("Preco e obrigratorio");
		}
		if(e.getQuantidade() == 0){
			throw new Exception("Quantidade e obrigratorio");
		}
		if (e.getVendaIngresso().equals("")){
			
			System.out.println("Erro");
		}
		
		VendaDAO vendaDAO =  DAOFactory.getVendaDAO();
		if(e.getIdVenda()==0){
		
		vendaDAO.salvar(e);
		
		}
	}
/**
 * Deleta as vendas
 */
	@Override
	public void excluir(Venda e) {
		VendaDAO vendaDAO =  DAOFactory.getVendaDAO();
		vendaDAO.deletar(e);
		
	}
/**
 * Busca e cria e retorna uma lista de vendas pro id
 */
	@Override
	public List<Venda> buscar(Venda e) throws Exception {
		List<Venda> vendas = new ArrayList<Venda>();
		VendaDAO vendaDAO = DAOFactory.getVendaDAO();
		vendas= vendaDAO.buscarVendaPorFinal(e);
		return vendas;
	}
/**
 * Busca cria e retorna uma lista de todas as  vendas
 */
	@Override
	public List<Venda> buscarTodos(){
		List<Venda> vendas = new ArrayList<Venda>();
		VendaDAO vendaDAO = DAOFactory.getVendaDAO();
		vendas = vendaDAO.findAll();
		return vendas;

	}

}
